package com.video.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.video.common.dto.VideoDto;
import com.video.entity.Video;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author maomao
 */
public interface VideoMapper extends BaseMapper<Video> {

    /**
     * 查询用户上传的视频
     *
     * @param videoDtoPage 分页参数
     * @param userId       用户Id
     * @param keyWord      关键字
     * @return list
     */
    IPage<VideoDto> getUserUploadVideo(Page<VideoDto> videoDtoPage, @Param("userId") Long userId, @Param("keyWord") String keyWord);

    /**
     * 获取视频详情
     *
     * @param videoId 视频Id
     * @return video
     */
    VideoDto getVideo(@Param("videoId") Long videoId);

    /**
     * 获取视频列表
     *
     * @param videoDtoPage 分页参数
     * @param categoryId   分类Id
     * @param industryId   行业Id
     * @param platformId   平台Id
     * @param keyword      关键字
     * @return 视频列表
     */
    IPage<VideoDto> listVideo(Page<VideoDto> videoDtoPage,
                             @Param("categoryId") Integer categoryId,
                             @Param("industryId") Integer industryId,
                             @Param("platformId") Integer platformId,
                             @Param("keyword") String keyword);

    /**
     * 获取自增视频主键Id的最大值
     *
     * @return id
     */
    Long getMaxVideoId();
}
